/*
 * 版权所有 (C) 2018 知启蒙(ZHIQIM) 保留所有权利。
 * 
 * 欢迎到知启蒙网站（https://www.zhiqim.com）购买正版软件，知启蒙还提供许多开源框架和软件。
 * 
 * 1、本软件产品所有源代码受《中华人民共和国著作权法》和其他有关法律、法规的保护，其所有知识产权归湖南知启蒙科技有限公司所有；
 * 2、禁止复制和修改。不得复制修改、翻译或改编本软件所有源代码，或者基于本软件产品创作衍生作品；
 * 3、禁止进行逆向工程。不得对本软件的源代码进行逆向工程、反编译或试图以其他方式发现软件的源代码；
 * 4、个别授权：如需进行商业性的销售、复制、分发，包括但不限于软件销售、预装、捆绑等，必须获得知启蒙的书面授权和许可；
 * 5、保留权利：本注释未明示授权的其他一切权利仍归知启蒙所有，任何人使用其他权利时必须获得知启蒙的书面同意。
 */
package net.redxyz.repost.resource;

import java.util.List;

import net.redxyz.repost.resource.model.SellerCatFirst;
import net.redxyz.repost.resource.model.SellerCatRoot;
import net.redxyz.repost.service.dao.UserDao;
import net.redxyz.top.TaobaoService;
import net.redxyz.top.data.shop.SellerCat;
import net.redxyz.top.dbo.user.User;

import org.zhiqim.kernel.annotation.AnAlias;
import org.zhiqim.kernel.logging.Log;
import org.zhiqim.kernel.logging.LogFactory;

/**
 * 服务
 */
@AnAlias("SessionUserService")
public class SessionUserService
{
    private static final Log log = LogFactory.getLog(SessionUserService.class);

    public SessionUser doRefreshUserInfo(SessionUser sessionUser) 
    {
        try
        {
            User user = UserDao.getUser(sessionUser.getNick());
            sessionUser.setUser(user);
            return sessionUser;
        }
        catch (Exception e)
        {
            log.error("更新用户信息时异常", e);
            return sessionUser;
        }
    }
    
    public void buildUserSellerCat(SessionUser sessionUser)
    {
        try
        {
            List<SellerCat> curSelList  = TaobaoService.getShopService().getSellercatsList(sessionUser.getNick(), sessionUser.getSessionId());
            
            SellerCatRoot seRoot = new SellerCatRoot();
            for (SellerCat cat : curSelList)
            {//first
                if (cat.getParentCid() == 0)
                {
                    seRoot.addFirst(cat.getCid(), cat.getSortOrder(), cat.getName());
                }
            }
            
            for (SellerCat cat : curSelList)
            {//second
                if (cat.getParentCid() != 0)
                {
                    SellerCatFirst first = seRoot.getFirst(cat.getParentCid());
                    first.addSecond(cat.getCid(), cat.getSortOrder(), cat.getName());
                }
            }
            
            sessionUser.setSeRoot(seRoot);
        }
        catch(Exception e)
        {
            log.error("读取用户分类时失败", e);
        }
    }
}
